﻿using System;
using Microsoft.Xna.Framework;

namespace Terraria.Graphics.Effects
{
	// Token: 0x02000399 RID: 921
	public abstract class GameEffect
	{
		// Token: 0x1700022F RID: 559
		// (get) Token: 0x0600207F RID: 8319 RVA: 0x00016DFA File Offset: 0x00014FFA
		public bool IsLoaded
		{
			get
			{
				return this._isLoaded;
			}
		}

		// Token: 0x17000230 RID: 560
		// (get) Token: 0x06002080 RID: 8320 RVA: 0x00016E02 File Offset: 0x00015002
		public EffectPriority Priority
		{
			get
			{
				return this._priority;
			}
		}

		// Token: 0x06002081 RID: 8321 RVA: 0x00016E0A File Offset: 0x0001500A
		public void Load()
		{
			if (this._isLoaded)
			{
				return;
			}
			this._isLoaded = true;
			this.OnLoad();
		}

		// Token: 0x06002082 RID: 8322 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void OnLoad()
		{
		}

		// Token: 0x06002083 RID: 8323
		public abstract bool IsVisible();

		// Token: 0x06002084 RID: 8324
		public abstract void Activate(Vector2 position, params object[] args);

		// Token: 0x06002085 RID: 8325
		public abstract void Deactivate(params object[] args);

		// Token: 0x04003D0E RID: 15630
		public float Opacity;

		// Token: 0x04003D0F RID: 15631
		protected bool _isLoaded;

		// Token: 0x04003D10 RID: 15632
		protected EffectPriority _priority;
	}
}
